好的程式,來自於有效地運用計算機上的「資源」。其中最重要的兩項資源,一是計算核心:例如中央處理器、浮點運算器等;二是儲存媒體:例如快取、記憶體、硬碟等(並配合通道、網路等連線裝置)。資料結構與演算法,主要探討的即是如何有效並正確地運用這兩項資源來解決各式的問題。
傳統上資料結構常見偏重於儲存媒體的運用,而演算法常見偏重於計算核心的運用。現實中兩者之地位往往相輔相成:快速的演算法,要靠適當的資料結構來實現;精簡的資料結構,要靠適當的演算法來達成。本課程以基本的資料結構為經,輔以相對應的演算法為緯,由具體的實作中逐步引入各式的理論分析工具,講授如何在不同的情境下,選擇最適當的資料結構與演算法,並評估各種選擇的優劣性。
本課程目的為帶領修課同學理解基本的資料結構及演算法工具,以運用它們解決實務之問題。並希望深化修課同學對先前「計算機程式」課程中所學語言之了解,以建立將來撰寫複雜演算法及大型程式的基礎。
|